package cn.doitedu.dwetl.area

import cn.doitedu.commons.utils.SparkUtil

/**
 * 让sparksql支持外面的hive，需要如下操作
 * 1. 从集群下载core-site.xml  hive-site.xml 放入resources目录
 * 2. sparksession实例构造过程中，要 enableHiveSupport()
 * 3. 提前起好hive的元数据服务：  hive --service metastore
 *
 * --号外：本次要读取的hive的ods.app_event_log表，配了一个第三方的serde解析插件，而工程中没有这个依赖库，需要引入这个依赖库
 * -- 而这个依赖库在中央仓库不存在，我们可以把下载来的jar包安装到本地maven仓库，也可以正常引入：
 * -- jar文件安装到maven本地库的命令：
 * bin\mvn install:install-file -Dfile=d:/json-serde.1.3.8.jar -DgroupId="org.openx.data" -DartifactId=json-serde -Dversion="1.3.8" -Dpackaging=jar
 */
object AppLogOds2Dwd {
  def main(args: Array[String]): Unit = {

    val spark = SparkUtil.getSparkSession(AppLogOds2Dwd.getClass.getSimpleName)

    // 按读取普通文件的方式，读取hive中ods的app日志表的数据
    val df = spark.read.textFile("/user/hive/warehouse/ods.db/app_event_log/y=2020/m=07/d=30/")
    /*df.show(10,false)
    df.printSchema()*/

    // 按照表的方式，来读取hive中的ods的app_event_log表
    val eventDF = spark.read.table("ods.app_event_log")

    eventDF.printSchema()
    eventDF.show(10,false)

    spark.close()

  }

}
